# 学生信息管理系统：

#数据库运用步骤1-导入pymysql模块
import pymysql

#定义stu信息表操作类
class Stu:
    def __init__(self,name):        
        
        #数据库运用步骤2-获取数据库连接
        self.db=pymysql.connect(host='localhost',user='root',password='',db=name,charset='utf8')
        
        #数据库运用步骤3-创建游标对象
        self.cursor=self.db.cursor()
        
    def findAll(self):
        
        #数据库运用步骤4a-定义sql语句
        sql1='select * from stu'
        try:
            #数据库运用步骤5a-执行sql语句
            self.cursor.execute(sql1)

            #数据库运用步骤6a-解析结果
            slist=self.cursor.fetchall()
            for i in slist:
                print(i)
                
        except Exception as err:
            print('SQL执行错误！',err)
            
    def Del(self,sid):        
        
        #数据库运用步骤4b-定义sql语句
        sql1='delete from stu where sid=%d'%(sid)
        try:
            #数据库运用步骤5b-执行sql语句
            self.cursor.execute(sql1)
            #事务提交
            self.db.commit()
            print('成功删除id为',sid,'的学员信息')
                
        except Exception as err:
            #事务回滚
            self.db.rollback()
            print('SQL执行错误！',err)        


    def Add(self,name,age,classid):
                
        #数据库运用步骤4c-定义sql语句
        sql1='insert into stu(name, age,classid) values("%s","%d","%s")'%(name,age,classid)
        sql2='select sid from stu where name="%s"'%(name)
        try:
            #数据库运用步骤5c-执行sql语句
            self.cursor.execute(sql1)
            self.cursor.execute(sql2)
            #数据库运用步骤6c-解析结果
            m=self.cursor.fetchone()
            
            #事务提交
            self.db.commit()
            print('成功加入id为',m,'姓名为',name,'的学员信息')
                
        except Exception as err:
            #事务回滚
            self.db.rollback()
            print('SQL执行错误！',err)        

    def __del__(self):
        #数据库运用步骤7-关闭数据库连接
        self.db.close()

#测试
key0=input('请输入学生信息数据表所在数据库名：')
stu=Stu(key0)
print('欢迎使用学生信息管理系统，\n学生信息将会为你呈现如下格式：')
print('(sid,name,age,classid)')
print()
while True:
    print('请输入对应的数码选择你要执行的功能：\n1.查看学员信息； 2.删除学员信息；\n3.添加学员信息； 4.退出系统；')
    key1=input('请输入数码：')
    
    if key1=='1':
        stu.findAll()
        input('按Enter继续')
        print()
        
    elif key1=='2':
        key2=int(input('请输入你要删除的学员id号码：'))
        stu.Del(key2)
        input('按Enter继续')
        print()

    elif key1=='3':        
        stu_name=input('请输入你要新增的学员姓名：')
        stu_age=int(input('请输入你要新增的学员年龄：'))
        stu_classid=input('请输入你要新增的学员班级：')
        stu.Add(stu_name,stu_age,stu_classid)
        input('按Enter继续')
        print()

    elif key1=='4':
        break

    else:
        print('输入错误！请按Enter后重新输入')
        input()
        
    




